from django import http
from django.http import HttpResponse
from django.shortcuts import render
from django.views import View
from django.utils.decorators import method_decorator


# 给类视图 添加装饰器
# 1.定义装饰器
def my_decorator(func):
    def wrapper(request, *args, **kwargs):
        # 写自己的扩展功能
        print('---添加装饰器----{}'.format(request.method))
        return func(request, *args, **kwargs)

    return wrapper


# 2.给类视图添加装饰器


# 1.定义类视图
# @method_decorator(my_decorator, name='get')
class LoginView(View):
    def get(self, request):
        return HttpResponse('这里假装返回Login页面--url')

    def post(self, request):
        return HttpResponse('这里假装实现Login-------------------逻辑')

    @method_decorator(my_decorator)
    def put(self, request):
        return HttpResponse('put 是修改 的功能')
    @method_decorator(my_decorator)
    def delete(self, request):
        return HttpResponse('delete 是删除的功能')


# 定义视图函数
def index(request):
    return http.HttpResponse('code register!')


# 问题: 我想让 login function 实现8个功能--8个if else
def login(request):
    # 获取请求方法，判断是GET还是POST请求
    if request.method == 'GET':
        # 处理GET请求，返回注册页面
        return HttpResponse('这里假装返回Login页面')
    else:
        # 处理POST请求，实现注册逻辑
        return HttpResponse('这里假装实现Login-------------------逻辑')

# 类视图优势
# 1: 类 类继承 扩展性搞
# 2: 阅读性好,  自动根据 请求方式 判断  对应的功能
